package main

import (
	"fmt"
	"runtime"
)

// https://studygolang.com/static/pkgdoc/pkg/runtime.htm
func main() {
	// NumCPU返回本地机器的逻辑CPU个数。
	cpuNum := runtime.NumCPU()
	fmt.Println("cpu数 = ", cpuNum) //cpu数 =  8

	// GOMAXPROCS设置可同时执行的最大CPU数，并返回先前的设置。
	// 若 n < 1，它就不会更改当前设置。本地机器的逻辑CPU数可通过 NumCPU 查询。
	//本函数在调度程序优化后会去掉。
	runtime.GOMAXPROCS(cpuNum - 1)

	// 再次获得CPU个数
	cpuNum = runtime.NumCPU() //cpu数 =  8
	fmt.Println("cpu数 = ", cpuNum)

}
